The parabola $y = x^2+2$ and the hyperbola $y^2 - mx^2 = 1$ are tangent. Find $m.$
Solution: We attempt to solve the system $y = x^2+2$ and $y^2-mx^2=1.$ The first equation gives $x^2 = y-2,$ so we can substitute into the second equation to get \[y^2 - m(y-2) = 1,\]or \[y^2 - my + (2m-1) = 0.\]For the parabola and hyperbola to be tangent, this equation must have exactly one solution for $y,$ so the discriminant must be zero: \[m^2 - 4(2m-1) = 0.\]Thus, $m^2 - 8m + 4 = 0,$ which gives \[m = \frac{8 \pm \sqrt{8^2 - 4 \cdot 4}}{2} = 4 \pm 2\sqrt{3}.\]To choose between the two possible values of $m,$ we attempt to solve for $y$ in the equation $y^2 - my + (2m-1) = 0.$ For $m = 4 \pm 2\sqrt{3},$ we have \[y = \frac{m \pm \sqrt{m^2 - 4(2m-1)}}{2} = \frac{m}{2},\]because these values of $m$ make the discriminant zero. Since $y = x^2+2,$ we have $y \ge 2,$ so we must have $\frac{m}{2} \ge 2,$ or $m \ge 4.$ Therefore, we must choose the root $m = \boxed{4+2\sqrt3}.$ (Note that only the top branch of the hyperbola is shown below, in blue.)
[asy]
void axes(real x0, real x1, real y0, real y1)
{
	draw((x0,0)--(x1,0),EndArrow);
    draw((0,y0)--(0,y1),EndArrow);
    label("$x$",(x1,0),E);
    label("$y$",(0,y1),N);
    for (int i=floor(x0)+1; i<x1; ++i)
    	draw((i,.1)--(i,-.1));
    for (int i=floor(y0)+1; i<y1; ++i)
    	draw((.1,i)--(-.1,i));
}
path[] yh(real a, real b, real h, real k, real x0, real x1, bool upper=true, bool lower=true, pen color=black)
{
	real f(real x) { return k + a / b * sqrt(b^2 + (x-h)^2); }
    real g(real x) { return k - a / b * sqrt(b^2 + (x-h)^2); }
    if (upper) { draw(graph(f, x0, x1),color,  Arrows); }
    if (lower) { draw(graph(g, x0, x1),color,  Arrows); }
    path [] arr = {graph(f, x0, x1), graph(g, x0, x1)};
    return arr;
}
void xh(real a, real b, real h, real k, real y0, real y1, bool right=true, bool left=true, pen color=black)
{
	path [] arr = yh(a, b, k, h, y0, y1, false, false);
    if (right) draw(reflect((0,0),(1,1))*arr[0],color,  Arrows);
    if (left) draw(reflect((0,0),(1,1))*arr[1],color,  Arrows);
}
void e(real a, real b, real h, real k)
{
	draw(shift((h,k))*scale(a,b)*unitcircle);
}
size(8cm);
axes(-3, 3, -1, 9);
real f(real x) { return x^2+2; } draw(graph(f, -2.5, 2.5), Arrows);
real m = 4+2*sqrt(3);
yh(1, m^(-0.5), 0, 0, -3, 3, lower=false,color=blue);
dot((-1.316,3.732)^^(1.316,3.732));
[/asy]